/*
 * Main.cpp
 *
 *  Created on: 29 août 2010
 *      Author: seeme
 */
      
#include "Main.h"
#include "Memory/ResCache.h"
#include "LogManager/Log.hpp"

#include "Scene/Context/OGLContext.h"

#include "Input/UserInputState.h"
 
using namespace std;

int main(int argc, char**argv){

	Log::v("Engine") << "Starting the engine";

	Log::v("Engine") << "Setting up memory";

	//On récupère un pointeur vers le cache mémoire.
	//On ne peut pas delete ce pointeur, seul le singleton::kill()
	//Peut le faire

	//Mémoire maximum alloué au cache.
	//Dans la mesure du possible, il va faire le ménage si on
	//Dépasse cette limite
	//A virer...
	//On charge le fichier *.rl qui contient
	//La définition de toutes les ressources du moteur.
	//Elles sont préchargées (size = 0)
	//Si on en a besoin, elles seront alors effectivement chargées.
	ResCache * s = Singleton<ResCache>::get();
	s->setMaximumMemory(128);
	Log::v("Engine") << "Loading package: Test";
	s->setPackageDir("../Test/");
	s->loadPackage("index.rl");

	//Création d'un contexte d'affichage OGL.
	Log::v("Engine") << "Launching OGLcontext";
	{
		OGLContext context;
		context.openContext(800, 600, "test");//*/
	}

	//A voir si c'est toujours nécessaire avec la SFML.
	Log::v("Engine") << "Killing the memory manager";
	Singleton<ResCache>::kill();


	//End of program
	Log::v("Engine") << "Killing the engine";
	return 0;
}




